"""
2 绘制正多边形 填充颜色  虚线段
    多边形的内角和外角如何计算
    fillcolor benginfill endfill
    goto t.pos() 让画笔移动到不同的位置
    penup pendown

    变量： 变量就像是商场中的储物柜，你把一个东西放进去，让后在储物柜上写上标记，
    哪里要使用东西，只用把标记放在哪里就好了，系统会通过标记去找里面的东西。

    但是这个变量的标记可不能随便写：比如写了个送悟空的金箍棒 ，你不能写个 Peppa Pig的吹风机吧 ,所以对于变量的命名我们要做到 **见名知意
    变量的明明是有一定的规范的 ：数字字母下划线，开头不能是字母，且严格区分大消息

"""
import turtle as t
import  random

# 绘制正五边形 其实绘正多边型号就是让乌龟转外角的度数
def drwaFive(num):
    t.speed(0)
    # 设置好填充的颜色
    t.fillcolor('red')
    t.begin_fill()
    for i in range(num):
        t.forward(100)
        t.left(360/num)
    t.end_fill() # 要放在done之前，不然不会填充
    t.done()

def drawFiveStare():
    t.speed(0)
    #t.color('red') # 设置画笔颜色为红色
    #t.fillcolor("red") # 设置填充色为红色
    t.color('red','red') # 上面两个方法可以简写，第一个参数是画笔颜色，第二个参数是填充颜色
    t.begin_fill()
    for i in range(5):
        t.forward(100)
        t.right(144)
    t.end_fill()
    t.done()

# 抬笔落笔 up/penup down/pendown
def testUpDown():
    t.color('red')
    t.forward(100)
    t.penup()
    t.forward(50)
    t.color('yellow')
    t.pendown()
    t.forward(100)
    t.done()
    pass

# goto 让画笔出现在指定位置
def testgoto():
    t.speed(10)
    print(t.pos())
    t.goto(200,100) # 让画笔移动到指定位置
    t.done()

# 通过goto绘制凌乱干扰线
def useGoto():
    color = ['red','blue','green','yellow','purple','pink']
    # 先画一个框框
    t.color('red')
    t.pensize(2)
    for i in range(4):
        t.forward(200)
        t.left(90)
    for i in range(30):
        t.penup()
        # 颜色
        t.color(color[i % len(color)])
        # 注意randint包含两边
        x = random.randint(0,200)
        y = random.randint(0,200)
        t.goto(x,y)
        t.pendown()
        x2 = random.randint(0, 200)
        y2 = random.randint(0, 200)
        t.goto(x2,y2)
    t.done()

# 绘制一个太阳
def drawSun():
    t.speed(10)
    t.color('red') # color会默认填充颜色和画笔颜色相同，所以会覆盖yellow的值
    t.fillcolor('yellow')
    t.begin_fill()
    for i in range(36):
        t.forward(300)
        t.right(170)
    t.end_fill()
    t.done()


if __name__ == '__main__':
    # 绘制正n边型
    #drwaFive(8)
    # 绘制五角星 -- 填充
    #drawFiveStare()
    # 绘制五彩虚线 -- up down
    #testUpDown()
    # goto
    #testgoto()

    # 绘制五彩干扰线
    #useGoto()

    # 绘制太阳
    drawSun()
    pass
